package com.dragon.modules.yuegou.entity.product;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.OwnerType;
import com.dragon.modules.yuegou.enums.SkuType;
import com.dragon.modules.yuegou.enums.product.SkuSettlementType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * SKU实体类<br>
 * 对应的表为：pro_sku<br>
 * 
 * @author pbuilder generated
 * @date 2022-04-01 21:01:19
 * @company sgy
 * @version 2.0
 */
@TableName("pro_sku")
@ApiModel(description = "SKU")
public class SkuEntity {

    /** ID */
	@ApiModelProperty("ID")
	protected String id;

    /** [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG */
	@ApiModelProperty("[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG")
	protected SkuType skuType;

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT */
	@ApiModelProperty("[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT")
	protected OwnerType ownerType;

    /** 集团ID */
	@ApiModelProperty("集团ID")
	protected String groupId;

    /** 商圈ID */
	@ApiModelProperty("商圈ID")
	protected String busdId;

    /** 商家ID */
	@ApiModelProperty("商家ID")
	protected String merchantId;

    /** 商品ID */
	@ApiModelProperty("商品ID")
	protected String spuId;

    /** 商品标题 */
	@ApiModelProperty("商品标题")
	protected String title;

    /** 主图 */
	@ApiModelProperty("主图")
	protected String mainImages;

    /** 商品图片 JSON存储 */
	@ApiModelProperty("商品图片 JSON存储")
	protected String images;

    /** 规格属性 JSON存储 */
	@ApiModelProperty("规格属性 JSON存储")
	protected String attrs;

    /** 商品编码 */
	@ApiModelProperty("商品编码")
	protected String code;

    /** 原价 */
	@ApiModelProperty("原价")
	protected BigDecimal originalPrice;

    /** 价格 */
	@ApiModelProperty("价格")
	protected BigDecimal price;

    /** 折扣价 */
	@ApiModelProperty("折扣价")
	protected BigDecimal discountPrice;

    /** 结算价 */
	@ApiModelProperty("结算价")
	protected BigDecimal settlementPrice;

    /** 积分 */
	@ApiModelProperty("积分")
	protected Integer point;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 更新人ID */
	@ApiModelProperty("更新人ID")
	protected String modifiedBy;

    /** 更新时间 */
	@ApiModelProperty("更新时间")
	protected LocalDateTime modifiedTime;

    /** 是否删除（1：已删除，0：未删除） */
	@ApiModelProperty("是否删除（1：已删除，0：未删除）")
	protected Boolean del;

    /** 删除人ID */
	@ApiModelProperty("删除人ID")
	protected String delBy;

    /** 删除时间 */
	@ApiModelProperty("删除时间")
	protected LocalDateTime delTime;

    /** 每人最大购买数量 */
	@ApiModelProperty("每人最大购买数量")
	protected Integer maxBuyNum;

    /** [枚举]结算类型：2-平台自营-PLATFORM、1-商户自营-MERCHANT" */
	@ApiModelProperty("[枚举]结算类型：2-平台自营-PLATFORM、1-商户自营-MERCHANT")
	protected SkuSettlementType settlementType;

    /** 成本价 */
	@ApiModelProperty("成本价")
	protected BigDecimal ownerPrice;

	/**
	 * 构造一个空SKU实体对象
	 */
	public SkuEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个SKU实体对象
	 * 
	 * @param other 其它对象
	 */
	public SkuEntity(SkuEntity other){
		super();
     	this.id = other.id;
     	this.skuType = other.skuType;
     	this.ownerType = other.ownerType;
     	this.groupId = other.groupId;
     	this.busdId = other.busdId;
     	this.merchantId = other.merchantId;
     	this.spuId = other.spuId;
     	this.title = other.title;
     	this.mainImages = other.mainImages;
     	this.images = other.images;
     	this.attrs = other.attrs;
     	this.code = other.code;
     	this.originalPrice = other.originalPrice;
     	this.price = other.price;
     	this.discountPrice = other.discountPrice;
     	this.settlementPrice = other.settlementPrice;
     	this.point = other.point;
     	this.createdTime = other.createdTime;
     	this.modifiedBy = other.modifiedBy;
     	this.modifiedTime = other.modifiedTime;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
     	this.maxBuyNum = other.maxBuyNum;
     	this.settlementType = other.settlementType;
     	this.ownerPrice = other.ownerPrice;
	}


	/**
	 * 获取ID
	 * 
	 * @return id ID
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置ID
	 * 
	 * @param id ID
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG
	 * 
	 * @return skuType [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG
	 */
	public SkuType getSkuType() {
		return skuType;
	}
  	
	/**
	 * 设置[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG
	 * 
	 * @param skuType [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG
	 */
	public void setSkuType(SkuType skuType) {
		this.skuType = skuType;
	}

	/**
	 * 获取[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 * 
	 * @return ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 */
	public OwnerType getOwnerType() {
		return ownerType;
	}
  	
	/**
	 * 设置[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 * 
	 * @param ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 */
	public void setOwnerType(OwnerType ownerType) {
		this.ownerType = ownerType;
	}

	/**
	 * 获取集团ID
	 * 
	 * @return groupId 集团ID
	 */
	public String getGroupId() {
		return groupId;
	}
  	
	/**
	 * 设置集团ID
	 * 
	 * @param groupId 集团ID
	 */
	public void setGroupId(String groupId) {
		this.groupId = groupId;
	}

	/**
	 * 获取商圈ID
	 * 
	 * @return busdId 商圈ID
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取商家ID
	 * 
	 * @return merchantId 商家ID
	 */
	public String getMerchantId() {
		return merchantId;
	}
  	
	/**
	 * 设置商家ID
	 * 
	 * @param merchantId 商家ID
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取商品ID
	 * 
	 * @return spuId 商品ID
	 */
	public String getSpuId() {
		return spuId;
	}
  	
	/**
	 * 设置商品ID
	 * 
	 * @param spuId 商品ID
	 */
	public void setSpuId(String spuId) {
		this.spuId = spuId;
	}

	/**
	 * 获取商品标题
	 * 
	 * @return title 商品标题
	 */
	public String getTitle() {
		return title;
	}
  	
	/**
	 * 设置商品标题
	 * 
	 * @param title 商品标题
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * 获取主图
	 * 
	 * @return mainImages 主图
	 */
	public String getMainImages() {
		return mainImages;
	}
  	
	/**
	 * 设置主图
	 * 
	 * @param mainImages 主图
	 */
	public void setMainImages(String mainImages) {
		this.mainImages = mainImages;
	}

	/**
	 * 获取商品图片 JSON存储
	 * 
	 * @return images 商品图片 JSON存储
	 */
	public String getImages() {
		return images;
	}
  	
	/**
	 * 设置商品图片 JSON存储
	 * 
	 * @param images 商品图片 JSON存储
	 */
	public void setImages(String images) {
		this.images = images;
	}

	/**
	 * 获取规格属性 JSON存储
	 * 
	 * @return attrs 规格属性 JSON存储
	 */
	public String getAttrs() {
		return attrs;
	}
  	
	/**
	 * 设置规格属性 JSON存储
	 * 
	 * @param attrs 规格属性 JSON存储
	 */
	public void setAttrs(String attrs) {
		this.attrs = attrs;
	}

	/**
	 * 获取商品编码
	 * 
	 * @return code 商品编码
	 */
	public String getCode() {
		return code;
	}
  	
	/**
	 * 设置商品编码
	 * 
	 * @param code 商品编码
	 */
	public void setCode(String code) {
		this.code = code;
	}

	/**
	 * 获取原价
	 * 
	 * @return originalPrice 原价
	 */
	public BigDecimal getOriginalPrice() {
		return originalPrice;
	}
  	
	/**
	 * 设置原价
	 * 
	 * @param originalPrice 原价
	 */
	public void setOriginalPrice(BigDecimal originalPrice) {
		this.originalPrice = originalPrice;
	}

	/**
	 * 获取价格
	 * 
	 * @return price 价格
	 */
	public BigDecimal getPrice() {
		return price;
	}
  	
	/**
	 * 设置价格
	 * 
	 * @param price 价格
	 */
	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	/**
	 * 获取折扣价
	 * 
	 * @return discountPrice 折扣价
	 */
	public BigDecimal getDiscountPrice() {
		return discountPrice;
	}
  	
	/**
	 * 设置折扣价
	 * 
	 * @param discountPrice 折扣价
	 */
	public void setDiscountPrice(BigDecimal discountPrice) {
		this.discountPrice = discountPrice;
	}

	/**
	 * 获取结算价
	 * 
	 * @return settlementPrice 结算价
	 */
	public BigDecimal getSettlementPrice() {
		return settlementPrice;
	}
  	
	/**
	 * 设置结算价
	 * 
	 * @param settlementPrice 结算价
	 */
	public void setSettlementPrice(BigDecimal settlementPrice) {
		this.settlementPrice = settlementPrice;
	}

	/**
	 * 获取积分
	 * 
	 * @return point 积分
	 */
	public Integer getPoint() {
		return point;
	}
  	
	/**
	 * 设置积分
	 * 
	 * @param point 积分
	 */
	public void setPoint(Integer point) {
		this.point = point;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取更新人ID
	 * 
	 * @return modifiedBy 更新人ID
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置更新人ID
	 * 
	 * @param modifiedBy 更新人ID
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * 获取更新时间
	 * 
	 * @return modifiedTime 更新时间
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置更新时间
	 * 
	 * @param modifiedTime 更新时间
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取是否删除（1：已删除，0：未删除）
	 * 
	 * @return del 是否删除（1：已删除，0：未删除）
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置是否删除（1：已删除，0：未删除）
	 * 
	 * @param del 是否删除（1：已删除，0：未删除）
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取删除人ID
	 * 
	 * @return delBy 删除人ID
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置删除人ID
	 * 
	 * @param delBy 删除人ID
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取删除时间
	 * 
	 * @return delTime 删除时间
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

	/**
	 * 获取每人最大购买数量
	 * 
	 * @return maxBuyNum 每人最大购买数量
	 */
	public Integer getMaxBuyNum() {
		return maxBuyNum;
	}
  	
	/**
	 * 设置每人最大购买数量
	 * 
	 * @param maxBuyNum 每人最大购买数量
	 */
	public void setMaxBuyNum(Integer maxBuyNum) {
		this.maxBuyNum = maxBuyNum;
	}

	/**
	 * 获取[枚举]结算类型：2-平台自营-PLATFORM、1-商户自营-MERCHANT"
	 * 
	 * @return settlementType [枚举]结算类型：2-平台自营-PLATFORM、1-商户自营-MERCHANT"
	 */
	public SkuSettlementType getSettlementType() {
		return settlementType;
	}
  	
	/**
	 * 设置[枚举]结算类型：2-平台自营-PLATFORM、1-商户自营-MERCHANT"
	 * 
	 * @param settlementType [枚举]结算类型：2-平台自营-PLATFORM、1-商户自营-MERCHANT"
	 */
	public void setSettlementType(SkuSettlementType settlementType) {
		this.settlementType = settlementType;
	}

	/**
	 * 获取成本价
	 * 
	 * @return ownerPrice 成本价
	 */
	public BigDecimal getOwnerPrice() {
		return ownerPrice;
	}
  	
	/**
	 * 设置成本价
	 * 
	 * @param ownerPrice 成本价
	 */
	public void setOwnerPrice(BigDecimal ownerPrice) {
		this.ownerPrice = ownerPrice;
	}

    public String toString() {
		return new StringBuilder().append("SkuEntity{").
			append("id=").append(id).
			append(",skuType=").append(skuType).
			append(",ownerType=").append(ownerType).
			append(",groupId=").append(groupId).
			append(",busdId=").append(busdId).
			append(",merchantId=").append(merchantId).
			append(",spuId=").append(spuId).
			append(",title=").append(title).
			append(",mainImages=").append(mainImages).
			append(",images=").append(images).
			append(",attrs=").append(attrs).
			append(",code=").append(code).
			append(",originalPrice=").append(originalPrice).
			append(",price=").append(price).
			append(",discountPrice=").append(discountPrice).
			append(",settlementPrice=").append(settlementPrice).
			append(",point=").append(point).
			append(",createdTime=").append(createdTime).
			append(",modifiedBy=").append(modifiedBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append(",maxBuyNum=").append(maxBuyNum).
			append(",settlementType=").append(settlementType).
			append(",ownerPrice=").append(ownerPrice).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public SkuEntity copy() {
		return new SkuEntity(this);
	}

    /** ID */
	public static final String COL_ID = "id";

    /** [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG */
	public static final String COL_SKU_TYPE = "sku_type";

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT */
	public static final String COL_OWNER_TYPE = "owner_type";

    /** 集团ID */
	public static final String COL_GROUP_ID = "group_id";

    /** 商圈ID */
	public static final String COL_BUSD_ID = "busd_id";

    /** 商家ID */
	public static final String COL_MERCHANT_ID = "merchant_id";

    /** 商品ID */
	public static final String COL_SPU_ID = "spu_id";

    /** 商品标题 */
	public static final String COL_TITLE = "title";

    /** 主图 */
	public static final String COL_MAIN_IMAGES = "main_images";

    /** 商品图片 JSON存储 */
	public static final String COL_IMAGES = "images";

    /** 规格属性 JSON存储 */
	public static final String COL_ATTRS = "attrs";

    /** 商品编码 */
	public static final String COL_CODE = "code";

    /** 原价 */
	public static final String COL_ORIGINAL_PRICE = "original_price";

    /** 价格 */
	public static final String COL_PRICE = "price";

    /** 折扣价 */
	public static final String COL_DISCOUNT_PRICE = "discount_price";

    /** 结算价 */
	public static final String COL_SETTLEMENT_PRICE = "settlement_price";

    /** 积分 */
	public static final String COL_POINT = "point";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 更新人ID */
	public static final String COL_MODIFIED_BY = "modified_by";

    /** 更新时间 */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /** 是否删除（1：已删除，0：未删除） */
	public static final String COL_DEL = "del";

    /** 删除人ID */
	public static final String COL_DEL_BY = "del_by";

    /** 删除时间 */
	public static final String COL_DEL_TIME = "del_time";

    /** 每人最大购买数量 */
	public static final String COL_MAX_BUY_NUM = "max_buy_num";

    /** [枚举]结算类型：2-平台自营-PLATFORM、1-商户自营-MERCHANT" */
	public static final String COL_SETTLEMENT_TYPE = "settlement_type";

    /** 成本价 */
	public static final String COL_OWNER_PRICE = "owner_price";
}
